home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 7 / FM Towns Free Software Collection 7.iso / ms_dos / thmake / thmake.doc < prev    next >
Text File  |  1993-11-30  |  7KB  |  212 lines

  1.  
  2.  
  3.          “THmake”プログラム保守ツール V1.1a
  4.  
  5.  
  6.                                   五味仁
  7.  
  8. 【配付ファイル】
  9.  
  10.      THmakeは以下のファイルで構成されます。
  11.  
  12.     THmake.exe          プログラム本体
  13.     THmake.doc          ドキュメント
  14.     THmake.c            ソース
  15.     makefile            サンプル
  16.  
  17.  
  18.  
  19. 【概略】
  20.  
  21.      ただのMAKEです。一般に公開されているものよりも高機能のつもりで
  22.     すが、LSI-Cに含まれているものやUNIXのものより劣ります。
  23.      MAKEとは、コンパイルやアセンブルなどの手段などをあらかじめ書い
  24.     ておいて、それに従って日付の新しくなっているものから処理を行うもので
  25.     す。
  26.  
  27.  
  28. 【起動方法】
  29.  
  30.      普通はただオプションとか無しで実行するだけです。必要に応じてオプショ
  31.     ンを書くことも出来ます。そして、もし処理方法を省略する条件を書いてお
  32.     けば、ファイル名を直接書くことによって処理を行わせる事もできます。
  33.  
  34.         THmake [[option]...] [[target name]...]
  35.  
  36.      かならず、処理の方法を書いたファイルを読み込まなければなりません。
  37.     オプションで指定しない限り、通常は'makefile'という名前のファイルを読
  38.     み込みます。あと、ターゲットを指定する時には、指定した後ろにオプショ
  39.     ンを書くことは許されません。
  40.  
  41.  
  42. 【makefileの書き方】
  43.  
  44.      行単位に処理をします。
  45.      行には以下のものがあり、扱いが違います。
  46.  
  47.         マクロ定義行
  48.         依存記述行
  49.         省略記述行
  50.         命令指令行
  51.  
  52.      全ての行に言えますが、¥の記号を最後に置くと、行を次の行に続かせる
  53.     ことが出来ます。この時、¥の前には空白を一つは入れる事と、¥のあとす
  54.     ぐに改行する事を忘れないでください。あと、#以降は全て注釈と見なして
  55.     無視します。ただし、#の前に空白が一つ以上ある時に限ります。無い時は、
  56.     そのまま#と見なします。
  57.  
  58.     【マクロ定義行】
  59.  
  60.      必要に応じてマクロを定義できます。
  61.  
  62.         <マクロ名> = <内容>
  63.  
  64.      これによって定義されたマクロは、$(マクロ名)によって展開され
  65.     ます。なお、マクロの中にマクロを定義することは出来ません。もしそ
  66.     れをやった場合は、マクロを展開したものをそのマクロに定義したと見
  67.     なされます。どのように定義されたか調べたい時は、リスティングのオ
  68.     プションを書いてください。
  69.  
  70.  
  71.     【依存記述行】
  72.  
  73.      ファイルが、どのファイルを元にして作られるかの関係を記すもので
  74.     す。
  75.  
  76.         ターゲット1 ターゲット2 ... : ソース1 ソース2 ...
  77.  
  78.      ソースの中で一番新しいものと、ターゲットの中で一番古いものと比
  79.     べます。もしターゲットの方が新しければ、何も行いません。ソースの
  80.     方が新しければ、続いての行で処理を行います。
  81.      処理行は、依存記述行に続いて書きますが、最初は必ずタブを入れて
  82.     ください。なお、処理行を省略しますと、ターゲットの日付変更だけを
  83.     行います。この時は、touchと表示されます。
  84.  
  85.  
  86.     【省略記述行】
  87.  
  88.      処理行が省略された時や、コマンドラインからターゲット名を入れた
  89.     時に有効になる処理を記述します。
  90.  
  91.         <ソース拡張子><ターゲット拡張子>:
  92.  
  93.      必ず、つなげて書いてください。そしてこのあと、処理行を記述しま
  94.     す。
  95.      ここで、処理行の時に使えるマクロを説明します。省略記述行と併用
  96.     する時には殆どかならず必要です。省略記述以外にも使えます。
  97.  
  98.         $<      一番左のソース名に置き代わります。
  99.         
  100.         $@      一番左のターゲット名に置き代わります。
  101.         
  102.         $#      全てのソース名に置き代わります。
  103.         
  104.         $?      ターゲットより新しい全てのソース名に変わります。
  105.         
  106.         ${...}  中括弧の中のものを、ファイル'make.i'に書き込み、コマ
  107.             ンドラインには'make.i'と出します。@によるコマンドラ
  108.             インの引用の出来るソフトについては'@${...}'とやれば
  109.             いいのです。
  110.         
  111.         $:c     ファイルを列挙する時に、普段は半角スペースで区切りま
  112.             すが、これを指定すると'$:+'という時に'+'がスペースの
  113.             代わりに区切る事になります。
  114.         
  115.  
  116.      これらを使えば、面倒な処理行の記述は少なくなります。例として、
  117.     サンプルを見ていただければ分かると思います。
  118.      省略記述に当てはまるファイルは、全てソースとして列挙されてしま
  119.     います。つまり、省略できるところは省略しなければ、二重にソースと
  120.     して認められてしまうことになります。リンカなどで注意してください。
  121.  
  122.  
  123.     【命令指令行】
  124.  
  125.      命令指令の書き方ですが、コンマのあとに命令名を書き、そのあとに
  126.     コロンを打ちます。つまり'.SILENT:'という感じです。
  127.      以下のものをサポートしています。
  128.  
  129.         IGNORE          返値を常に無視させます。
  130.         
  131.         SILENT          処理行の表示を行いません。
  132.         
  133.  
  134.  
  135.  
  136.  
  137. 【オプション】
  138.  
  139.      以下のものがあります。必ずハイフンのあとに続けてください。あと、大
  140.     抵は小文字なので注意してください。
  141.  
  142.     ?,h,H   簡単なヘルプ画面を出します。
  143.     
  144.     c       このMAKEは、返値を見るためにコマンドインタプリタを通
  145.         していません。もしリダイレクトなどの機能を使う時には、こ
  146.         れを指定してください。なお、これを指定すると全部の処理行
  147.         に対して行ってしまうので、もし特定の行だけをコマンドイン
  148.         タプリタに通したい時には、その処理行の頭に'+'を書いてく
  149.         ださい。注意として、コマンドインタプリタを通じて実行され
  150.         た実行ファイルからは、返値を受け取ることは出来ません。
  151.     
  152.     d       処理の表示を行わなくします。全部に対して表示をやめてしま
  153.         うので、もし特定のものにだけ適用させたければ、その処理行
  154.         の頭に'@'と書いてください。
  155.     
  156.     D<mac>  マクロ変数を定義します。この直後にマクロ名を書き、そのあ
  157.         とに一つ以上空白を置いてから内容を書きます。制限として、
  158.         この時には変数の内容には空白を使うことは出来ません。
  159.     
  160.     e       処理の実行を行わなくします。この時に、タイムスタンプは調
  161.         べませんので、全ての処理を見ることが出来ます。
  162.     
  163.     f       処理方法記述ファイルを指定します。このあと一つ離してファ
  164.         イル名を書いてください。なお、このオプションを使わなかっ
  165.         た時は'makefile'となります。
  166.     
  167.     i       依存関係の簡単なリストを出します。ただし、省略されたもの
  168.         のうち、ターゲットのソース省略はリスティングされますが、
  169.         ソースをターゲットとした子処理はされませんので注意してく
  170.         ださい。
  171.     
  172.     m       マクロ変数の列挙表示を行います。
  173.     
  174.     p       経過表示をします。主にデバッグに使っていたものですが、確
  175.         認が要るという人は使ってください。
  176.     
  177.     t       タイムスタンプを更新するだけの処理をします。これを実行し
  178.         たあとは、擬似的に作成されたことになりますので、注意が必
  179.         要です。
  180.     
  181.     v       このMAKEは、返値が0以外の時は処理を中断しますが、こ
  182.         れを指定した時には返値を常に無視します。一定の処理だけの
  183.         返値だけを無視したい時には、その処理行の頭に'-'と記述し
  184.         てください。
  185.     
  186.  
  187.  
  188.  
  189. 【普通のMAKEとの注意点】
  190.  
  191.      処理行の時に使えるマクロが限られています。特に使うものだけを用意し
  192.     ましたが、無いものもありますので注意してください。
  193.      'SUFFIXES'はありません。その結果、ある意味では面倒さはなくなりまし
  194.     たが、'makefile'じゃないファイルを処理方法記述ファイルに指定する時に
  195.     はオプションを利用することになります。
  196.  
  197.  
  198. 【あとがき】
  199.  
  200.      このプログラムは、LSI-CとそのMAKEを使って作られていますの
  201.     で、要は腕試し程度のつもりで作りました。しかし、自分のプログラムの方
  202.     が改造しやすいので、これからもっと便利にしたいと思います。
  203.  
  204.  
  205. 【履歴】
  206.  
  207.     93/03/17  v0.53   最低限の完成.
  208.     93/03/19  v1.0    初版.省略やマクロの追加.
  209.     93/03/27  v1.1    'make.i'書き出しのサポート等.
  210.     93/03/29  v1.1a   省略かどうかの判断のバグ取り.
  211.     93/08/12  v1.1b   省略時のソースファイル判定のバグ修正.
  212.